// function Demo(target: Function) {
//   // console.log(target, 123);
//   console.log(target);
//   target.prototype.toString = function () {
//     return JSON.stringify(this)
//   }
//   Object.seal(target.prototype)
// }
// @Demo
// class Person {
//   name: string
//   age: number
//   constructor(name: string, age: number) {
//     this.name = name
//     this.age = age
//   }
// }
// const p1 = new Person('张三', 18)
// console.log(p1.toString());
function Demo(target: Function) {
  return class {
    test() {
      console.log(200);
      console.log(300);
      console.log(400);
    }
  }
}

@Demo class Person {
  test() {
    console.log(100);
  }
}
console.log(Person);